package com.shuda.business.user.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.shuda.business.user.entity.RoleEntity;
import com.shuda.common.dto.PageDTO;
import com.shuda.common.utils.PageResult;

import java.util.List;

/**
 * 角色服务接口类
 */
public interface RoleService {

    /**
     * 分页查询角色列表
     */
    PageResult<RoleEntity> getRolePage(PageDTO pageDTO, QueryWrapper<RoleEntity> queryWrapper);

    /**
     * 根据ID获取角色
     */
    RoleEntity getById(Long id);

    /**
     * 创建角色
     */
    void createRole(RoleEntity role);

    /**
     * 更新角色
     */
    void updateRole(RoleEntity role);

    /**
     * 删除角色
     */
    void deleteRole(Long id);

    /**
     * 批量删除角色
     */
    void deleteRoles(List<Long> ids);

    /**
     * 更新角色状态
     */
    void updateRoleStatus(Long id, String status);

    /**
     * 分配角色权限
     */
    void assignPermissions(Long roleId, List<Long> permissionIds);

    /**
     * 获取角色权限
     */
    List<Long> getRolePermissions(Long roleId);

    /**
     * 获取所有角色
     */
    List<RoleEntity> getAllRoles();
}